/******************** User-space console driver (/dev/console) ************/
#define DRV(_d) (_d)
-#define TTY_INDEX(_tty) ((_tty)->index)
+#define DUMMY_TTY(_tty) ((xc_mode != XC_SERIAL) && \
+ ((_tty)->index != (xc_num - 1)))
static struct termios *xencons_termios[MAX_NR_CONSOLES];
static struct termios *xencons_termios_locked[MAX_NR_CONSOLES];
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
spin_lock_irqsave(&xencons_lock, flags);
static void xencons_throttle(struct tty_struct *tty)
{
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
if (I_IXOFF(tty))
static void xencons_unthrottle(struct tty_struct *tty)
{
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
if (I_IXOFF(tty)) {
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
spin_lock_irqsave(&xencons_lock, flags);
int i;
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return count;
spin_lock_irqsave(&xencons_lock, flags);
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
spin_lock_irqsave(&xencons_lock, flags);
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
spin_lock_irqsave(&xencons_lock, flags);
{
unsigned long orig_jiffies = jiffies;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
while (DRV(tty->driver)->chars_in_buffer(tty)) {
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return 0;
spin_lock_irqsave(&xencons_lock, flags);
{
unsigned long flags;
- if (TTY_INDEX(tty) != 0)
+ if (DUMMY_TTY(tty))
return;
if (tty->count == 1) {
DRV(xencons_driver)->init_termios = tty_std_termios;
DRV(xencons_driver)->flags =
TTY_DRIVER_REAL_RAW |
- TTY_DRIVER_RESET_TERMIOS |
- TTY_DRIVER_NO_DEVFS;
+ TTY_DRIVER_RESET_TERMIOS;
DRV(xencons_driver)->termios = xencons_termios;
DRV(xencons_driver)->termios_locked = xencons_termios_locked;
DRV(xencons_driver)->name_base = 0 + xc_num;
} else {
DRV(xencons_driver)->name = "tty";
- DRV(xencons_driver)->minor_start = xc_num;
- DRV(xencons_driver)->name_base = xc_num;
+ DRV(xencons_driver)->minor_start = 1;
+ DRV(xencons_driver)->name_base = 1;
}
tty_set_operations(xencons_driver, &xencons_ops);
return rc;
}
- tty_register_device(xencons_driver, 0, NULL);
-
if (xen_start_info->flags & SIF_INITDOMAIN) {
xencons_priv_irq = bind_virq_to_irqhandler(
VIRQ_CONSOLE,
}
printk("Xen virtual console successfully installed as %s%d\n",
- DRV(xencons_driver)->name,
- DRV(xencons_driver)->name_base );
+ DRV(xencons_driver)->name, xc_num);
return 0;
}